package com.tzy.common.constant;
/**
 * 使用枚举返回统一接口格式和状态码
 */
public enum ResultCode {
    /**
     * 返回结果枚举，每个枚举代表着一个状态
     */
    //成功状态码
    SUCCESS(0, "成功"),
    FAILURE(1, "操作失败"),
    /*用户错误: 2001-2999*/
    USER_NOT__LOGGED_IN(2, "用户未登录,访问的路径需要验证,请登录"),
    USER_LOGIN_ERROR(3, "账号不存在或密码错误"),
    USER_ACCOUNT_FORBIDDEN(4, "账号已被禁用"),
    // 参数错误: 1001-1999
    PARAM_IS_INVALID_ID(1001, "参数无效"),
    PARAM_IS_BLANK(1002, "参数为空"),
    PARAM_TYPE_BIND_ERROR(1003, "参数类型错误"),
    PARAM_NOT_COMPLETE(1004, "参数缺失"),

    USER_NOT_EXIST(2004, "用户不存在"),
    USER_HAS_EXISTED(2005, "用户已存在"),
    /**
     * 逻辑删除状态
     */
    DELETED(1, "已删除"),
    NOT_DELETED(0, "未删除"),
    /**
     * 启用状态
     */
    ENABLED(1, "启用"),
    NOT_ENABLE(0, "未启用"),
    /**
     * 性别状态
     */
    SEX_MAN(1, "男"),
    SEX_WOMAN(2, "女"),
    /**
     * 请求访问状态枚举
     */
    REQUEST_SUCCESS(1, "请求正常"),
    REQUEST_ERROR(0, "请求异常"),
    /**
     * 用户标识。
     * 0表示管理员，1表示普通用户
     */
    ADMIN(0, "管理员"),
    USER(1, "普通用户");
    //https://blog.csdn.net/weng74/article/details/107876866
    private Integer code;
    private String message;

    ResultCode(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    public Integer code() {
        return this.code;
    }

    public String message() {
        return this.message;
    }

}
